// 2013-8-1下午12:09:24  net.betou.trade.entity.main.User.java

package net.betou.trade.entity.main;

import java.util.Date;
import java.util.Set;

import net.betou.common.util.DateUtils;
import net.betou.trade.entity.main.base.BaseUser;

import org.apache.commons.lang.StringUtils;


/**
 * 
 * @author 叶装装
 */
public class User extends BaseUser{
	
	public void initToSave( ){
		
		this.setRegDate( new Date( ) );
		this.setLoginCount( 0 );
		this.setExpireDate( getExpireDateManyYears( null ) );
		init( );
		
	}
	
	/**
	 * 是否已过期
	 * @return
	 */
	public Boolean getExpire( ){
		Date now = new Date( );
		Date expireDate = getExpireDate( );
		
		long nowTime = DateUtils.getTimeInMills( now );
		long expireTime = DateUtils.getTimeInMills( expireDate );
		
		return nowTime - expireTime >= 0;
		
	}
	
	/**
	 * 默认为1年后过期
	 * @param date
	 * @return
	 */
	public Date getExpireDateManyYears( String date ){
		Date d;
		if( StringUtils.isBlank( date ) ){
			d = new Date( );
		}else{
			d = DateUtils.format( date );
		}
		return DateUtils.getYearEnd( d, 1 );
	}
	
	public void init( ){
		if( getDisabled( ) == null ){
			this.setDisabled( true ); // 表示不启用, 已禁用
		}else{
			this.setDisabled( false );
		}

		if( StringUtils.isBlank( getEmail( ) ) ){
			this.setEmail( null );
		}

		if( StringUtils.isBlank( getMobile( ) ) ){
			setMobile( null );
		}
		
		if( StringUtils.isBlank( getDemoAccount() )){
			setDemoAccount( null );
		}
		
		if( StringUtils.isBlank( getFirmAccount() )){
			setFirmAccount( null );
		}
		
		if( StringUtils.isBlank( getFirmAccountPwd( ) )){
			setFirmAccountPwd( null );
		}
		
		if( StringUtils.isBlank( getDemoAccountPwd() )){
			setDemoAccountPwd( null );
		}
		
		setLogon( false ); // 设置登录为false
		
	}
	
	public UserExt getExt( ) {
		Set< UserExt > set = this.getExts( );
		if( set != null && set.size( ) > 0 ){
			return set.iterator( ).next( );
		}else{
			return null;
		}
	}
	
	
	private static final long serialVersionUID = -8488973351636381884L;

}
